package persi.futbol;

import java.util.ArrayList;
import java.util.List;

import enums.Posicion;

import persi.futbol.formacion.Formacion;
import persi.futbol.formacion.FormacionStrategy;
import persi.futbol.formacion.FormacionStrategyImpl;
import persi.futbol.interfaces.Nombrable;

public class Tecnico implements Nombrable {
	/**
	 * Delega en el strategy para armar el equipo
	 */
	private FormacionStrategy strategy;
	private String nombre;

	public Tecnico() {
		List<Posicion> posiciones = new ArrayList<Posicion>();
		posiciones.add(Posicion.Arquero);
		posiciones.add(Posicion.Lateral);
		posiciones.add(Posicion.Lateral);
		posiciones.add(Posicion.Central);
		posiciones.add(Posicion.Central);
		posiciones.add(Posicion.VolanteDefensivo);
		posiciones.add(Posicion.VolanteLateral);
		posiciones.add(Posicion.VolanteLateral);
		posiciones.add(Posicion.MediaPunta);
		posiciones.add(Posicion.Enganche);
		posiciones.add(Posicion.Delantero);
		this.strategy = new FormacionStrategyImpl(posiciones);
	}

	public Tecnico(FormacionStrategy strategy) {
		this.strategy = strategy;
	}

	public FormacionStrategy getStrategy() {
		return strategy;
	}

	public void setStrategy(FormacionStrategy strategy) {
		this.strategy = strategy;
	}

	public String getNombre() {
		return this.nombre;
	}

	Formacion armarFormacion(Equipo e) {
		return this.getStrategy().armarFormacion(e);
	}

}
